import asyncio
import logging
from aiogram import Bot, Dispatcher, types
from aiogram.enums import ParseMode
from aiogram.filters import Command
from dotenv import load_dotenv
import os

# Импортируем функции из auth.py
from auth import generate_jwt_token

# Логирование
logging.basicConfig(level=logging.INFO)

# Загружаем переменные окружения
load_dotenv()

# Инициализируем бота
bot = Bot(token=os.getenv("TELEGRAM_BOT_TOKEN"))
dp = Dispatcher()
host = os.getenv("HOSTNAME")
@dp.message(Command('start'))
async def send_welcome(message: types.Message):
    """
    Обработчик команды /start.
    Генерирует и отправляет JWT токен с user_id и коротким тегом (если он есть).
    """
    user_id = message.from_user.id
    username = f"@{message.from_user.username}" if message.from_user.username else None

    # Генерируем токен
    token = generate_jwt_token(user_id, username)

    # Отправляем токен пользователю
    await message.reply(f"Привет, чтобы авторизоваться на сайте перейди по этой ссылке: <a href='{host}/auth?token={token}'>тык</a>", parse_mode=ParseMode.HTML)

async def main():
    await dp.start_polling(bot)
if __name__ == '__main__':
    asyncio.run(main())
